package cn.funeralobjects.dictms.service;

import cn.funeralobjects.common.service.ModuleService;
import cn.funeralobjects.dictms.entity.EDictRelatePath;
import cn.funeralobjects.dictms.model.DictValuePathDto;

import java.util.List;

/**
 * @author FuneralObjects
 * Create date: 2020/6/3 1:50 AM
 */
public interface DictRelatePathService extends ModuleService {
    String ENTITY_NAME = "DictRelatePath";

    Integer TOP_PARENT_ID = 0;

    /**
     * 添加绑定的联级数据
     *
     * @param relateId    联级规则id
     * @param dictValueId 联级值
     * @param parentId    父级id
     * @return 联级对象
     */
    EDictRelatePath addBindDictValue(Integer relateId, Integer dictValueId, Integer parentId);

    /**
     * 添加绑定的顶部联级数据
     *
     * @param relateId    联级规则id
     * @param dictValueId 联级值
     * @param headValueId 顶部被联级值
     * @return 联级对象
     */
    EDictRelatePath addBindDictValueTopDepth(Integer relateId, Integer dictValueId, Integer headValueId);

    /**
     * 删除联级对象
     *
     * @param id 主键id
     */
    void removeById(Integer id);

    List<DictValuePathDto> findDictValuePathByRelateIdAndHeadValueId(Integer relateId, Integer headValueId);

    List<DictValuePathDto> findDictValuePathByParentId(Integer parentId);
}
